package com.directorio.modelo.service;

import com.directorio.modelo.bean.Alumno;
import com.directorio.modelo.bean.Dato_Tipo;
import com.directorio.modelo.bean.Empresa;
import com.directorio.modelo.bean.Empresa_Requerimiento;
import com.directorio.modelo.dao.EmpresaDao;
import com.directorio.modelo.service.EmpresaService;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class EmpresaServiceImpl implements EmpresaService{

    protected EmpresaDao empresaDao;
    public EmpresaServiceImpl(){
    }

    public void setEmpresaDao(EmpresaDao empresaDao){
        this.empresaDao = empresaDao;
    }

    public int insertaEmpresa(Empresa emp)throws Exception{
        return empresaDao.insertEmpresa(emp);
    }

    public Empresa obtenerEmpresa(String ruc)throws Exception{
        try{
            return empresaDao.getEmpresa(ruc);
        }catch(Exception ex){
            ex.printStackTrace();
        }
        return null;
    }

    public List obtenerGiro()throws Exception{
        try{
            return empresaDao.getGiro();
        }catch(Exception ex){
            ex.printStackTrace();
        }
        return null;
    }

    public List obtenerCargo()throws Exception{
        try{
            return empresaDao.getCargo();
        }catch(Exception ex){
            ex.printStackTrace();
        }
        return null;
    }

    public int insertaRequerEmpresa(Empresa_Requerimiento req_emp)throws Exception{
    	req_emp.setOp("I");
        return empresaDao.insertRequerEmpresa(req_emp);
    }
    public int eliminarRequerEmpresa(Empresa_Requerimiento req_emp)throws Exception{
    	req_emp.setOp("D");
        return empresaDao.insertRequerEmpresa(req_emp);
    }
    public List obtenerRequerimientosCreados(String ruc)throws Exception{
        return empresaDao.getRequerimientos(ruc,"00");
    }
    public List obtenerTodosRequerimientos(String ruc)throws Exception{
        return empresaDao.getRequerimientos(ruc,"");
    }
    public int publicarRequerimientoEmpresa(String _ruc, String _detal)throws Exception{
    	return empresaDao.publicRequerEmpresa(_ruc, _detal);
    }
    public List<String> publicarAceptacionRequerEmpresa(Map map) throws Exception {
		return empresaDao.publicAceptacionRequerEmpresa(map);
	}
	
	public int modificarDatosEmpresa(String _ruc, String _val, Integer op)throws Exception {
		return empresaDao.updateDatosEmpresa(_ruc, _val, op);
	}
	
	public int modificarDatosResponsabEmpresa(Empresa empresa) throws Exception {
		return empresaDao.updateDatosResponsabEmpresa(empresa);
	}
	
	public List<String> obtenerMailsDesdeRequerimiento(Map map) throws Exception {
		return empresaDao.getMailsFromRequerimiento(map);
	}
	
	public List<Alumno> obtenerPerfilAlumn(Map map) {
		return empresaDao.getPerfilAlumn(map);
	}
	
	public List obtenerRequerimientosPorAprobar(String ruc) throws Exception {
		return empresaDao.getRequerimientos(ruc,"01");
	}
	
	public List obtenerRequerimientosEnEjecucion(String ruc) throws Exception {
		return empresaDao.getRequerimientos(ruc,"02");
	}
	
	public List obtenerRequerimientosFinalizados(String ruc) throws Exception {
		return empresaDao.getRequerimientos(ruc,"03");
	}

	
	public List obtenerBusquedadRequerimientos(Map map) throws Exception {
		return empresaDao.getBusquedadRequerimientos(map);
	}

	
	public List getBusquedadRequerimientosFromAlum(Map map) throws Exception {
		return empresaDao.getBusquedadRequerimientosFromAlum(map);
	}

	
	public List<Empresa> obtenerEmpresaAccesoPendienteAll() throws Exception {
		Map map = new HashMap();
		String stad = "00";
		map.put("_stad",stad);
		return empresaDao.getEmpresaAll(map);
	}

	public List obtenerRequerimientWithData(Map map) throws Exception {
		return empresaDao.getRequerimientWithData(map);
	}
}